
Apache Drill은 대규모·이종 데이터에 대해 SQL로 쿼리할 수 있게 해주는 오픈소스 분산 쿼리 엔진입니다. 전통적인 사전 스키마(스키마 온 라이트)를 요구하지 않고, 스키마 온 리드 방식으로 JSON, Avro, Parquet, ORC 같은 컬럼형·반정형 포맷과 HDFS·S3·로컬 파일·NoSQL(예: MongoDB, HBase)·Kafka·관계형 DB 등 다양한 데이터 소스에 대해 바로 쿼리할 수 있습니다. 핵심 특징 - 스키마 불요(스키마 온 리드): 데이터 적재 전 변환(ETL) 없이 원본 상태에서 바로 쿼리 가능. - 표준 SQL 지원: ANSI SQL 유사 문법과 중첩(중첩된 레코드/배열) 데이터 처리를 지원. - 분산 MPP 처리: 여러 노드에 걸친 병렬 실행으로 대용량 데이터에 대한 대화형 쿼리(저지연)를 지향. - 유연한 데이터 소스 통합: 플러그인 아키텍처로 다양한 저장소에 연결 가능. - 인터페이스: JDBC/ODBC 드라이버 지원으로 BI 도구나 애플리케이션 연동 용이. - 런타임 최적화: 벡터화 처리나 투명한 열 기반 접근 등으로 성능 향상. 구성 요소(개념적) - Drillbit: 각 노드에서 쿼리를 수신·실행하는 프로세스(분산 처리 단위). - 클러스터 코디네이션: 서비스 디스커버리/메타데이터 관리를 위해 ZooKeeper 같은 도구를 사용 가능. - 스토리지 플러그인: 파일 시스템·클라우드·NoSQL·JDBC 등 다양한 소스에 대한 커넥터. 주요 사용 사례 - 로그·JSON 등 반정형 데이터의 탐색적 분석 - 여러 저장소에 흩어진 데이터에 대한 ad-hoc 분석 및 BI 대시보드 연결 - ETL 전 데이터 검토 및 빠른 프로토타입 분석 제한 및 고려사항 - 트랜잭션 지원·OLTP 용도가 아니라 분석(OLAP) 및 탐색적 쿼리에 적합. - 워크로드와 데이터 특성에 따라 성능 차이가 있으므로 운영 환경에서는 성능 테스트 필요. - 일부 복잡한 최적화나 저장소 특화 기능은 전용 엔진보다 약할 수 있음. 요약하면, Apache Drill은 스키마를 사전에 정의하지 않아도 다양한 저장소의 대용량·반정형 데이터를 SQL로 빠르게 조회할 수 있게 해주는 분산 쿼리 엔진입니다.